package com.snail.clouds.framework.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 用户实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("user_profiles")
public class UserProfile extends BaseEntity {
    /**
     * 用户ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    
    /**
     * 用户编码
     */
    @TableField("user_code")
    private String userCode;
    
    /**
     * 用户密码(加密)
     */
    @TableField("password")
    private String password;
    
    /**
     * 用户昵称
     */
    @TableField("nickname")
    private String nickname;
    
    /**
     * 用户角色(admin/user)
     */
    @TableField("role")
    private String role;
    
    /**
     * 用户状态(active/inactive/suspended)
     */
    @TableField("status")
    private String status;
    
    /**
     * 到期时间
     */
    @TableField("expires_at")
    private LocalDateTime expiresAt;
    
    /**
     * 最大存储空间(字节)
     */
    @TableField("max_storage")
    private Long maxStorage;
    
    /**
     * 已用存储空间(字节)
     */
    @TableField("used_storage")
    private Long usedStorage;
}